package com.sprouting.personal.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sprouting.personal.model.entity.PsPlan;
import com.sprouting.personal.model.vo.PsPlanVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 计划
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2023/1/12 18:00
 */
public interface PsPlanDao extends BaseMapper<PsPlan> {

    /**
     * 根据主键查询计划
     * @param id 主键
     * @return
     */
    PsPlan getPlanById(String id);

    /**
     * 获取用户全部的任务计划
     * @param userId 用户ID
     * @param taskFinishList 要查询的完成类型
     * @return
     */
    List<PsPlan> getPlanByUserId(@Param("userId") String userId, @Param("list") List<Integer> taskFinishList);

    /**
     * 分页查询全部的计划
     * @param page 分页参数
     * @param plan 计划参数
     * @param userId 当前登录用户ID
     * @return
     */
    Page<PsPlanVo> getTaskAll(Page page, @Param("plan") PsPlan plan, @Param("userId") String userId);

    /**
     * 获取小时级别的任务-固定任务到秒级别的
     * @param userId 当前登录用户ID
     * @return
     */
    List<PsPlan> getHourTask(String userId);

    /**
     * 获取全部的任务总数,所有的任务
     * @param userId 当前用户ID
     * @return
     */
    Long getPlanTool(String userId);

}
